      1  import java.util.logging.Logger;

      2

      3  /**

      4     A cash register totals up sales and computes change due.

      5  */

      6  public class CashRegister

      7  {

      8     public static final double QUARTER_VALUE = 0.25;

      9     public static final double DIME_VALUE = 0.1;

     10     public static final double NICKEL_VALUE = 0.05;

     11     public static final double PENNY_VALUE = 0.01;

     12

     13     private double purchase;

     14     private double payment;

     15

     16     /**

     17        Constructs a cash register with no money in it.

     18     */

     19     public CashRegister()

     20     {

     21        purchase = 0;

     22        payment = 0;

     23     }

     24

     25     /**

     26        Records the purchase price of an item.

     27        @param amount the price of the purchased item

     28     */

     29     public void recordPurchase(double amount)

     30     {

     31        purchase = purchase + amount;

     32     }

     33

     34     /**

     35        Enters the payment received from the customer.

     36        @param dollars the number of dollars in the payment

     37        @param quarters the number of quarters in the payment

     38        @param dimes the number of dimes in the payment

     39        @param nickels the number of nickels in the payment

     40        @param pennies the number of pennies in the payment

     41     */

     42     public void receivePayment(int dollars, int quarters,

     43           int dimes, int nickels, int pennies)

     44     {

     45        payment = dollars + quarters * QUARTER_VALUE + dimes * DIME_VALUE

     46              + nickels * NICKEL_VALUE + pennies * PENNY_VALUE;

     47     }

     48

     49     /**

     50        Computes the change due and resets the machine for the next customer.

     51        @return the change due to the customer

     52     */

     53     public double giveChange()

     54     {

     55        double change = payment - purchase;

     56        purchase = 0;

     57        payment = 0;

     58        return change;

     59     }

     60  }